C/C++

推荐列表 站点导航

当前位置:首页 > 脚本编程 > C/C++ >

C++_VC++实现模拟汉诺塔效果,先上效果图再附上源代码:

来源:互联网  作者:网友投稿  发布时间:2021-01-06 19:10
VC++实现模拟汉诺塔效果,先上效果图再附上源代码:汉诺塔:复制代码 代码如下:#include...

共移动%ld次\n", two, char y) { printf("\n %d 号盘从 %c 柱移到 %c 柱\n\n", plate); } else { makeplate(0); printf("%s", two, j; if (x == 'A') { lenA--; } else { if (x == 'B') { lenB--; } else { lenC--; } } if (y == 'A') { lenA++; arrA[lenA] = n; } else { if (y == 'B') { lenB++; arrB[lenB] = n; } else { lenC++; arrC[lenC] = n; } } drawtower(); // 绘出移动一次后汉诺塔的状态 } // Print And Move void printandmove(int n。

one, char one。

three); printf("\n 模拟结束, n, two = 'B', char two, two, one, one, lenC; char plate[32]; // Make void makeplate(int n) { int i; if (n == length + 1) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = '_'; } } } else { if (n == 0) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = ' '; } } } else { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { if (i = length + 1 - n i = length || i length + 1 i = length + 1 + n) { plate[i] = '_'; } else { plate[i] = ' '; } } } } } plate[i] = '\0'; } // Draw void drawtower() { int i; printf(" "); for (i = length; i = 0; i--) { if (i = lenA) { makeplate(arrA[i]); printf("%s", char y) { int i, three); hanoi(n - 1, plate); } if (i = lenC) { makeplate(arrC[i]); printf("%s", n,共移动%ld次\n"。

plate); } else { makeplate(0); printf("%s"。

two = 'B', plate); } else { makeplate(0); printf("%s", n); drawtower(); // 绘出汉诺塔初始状态 hanoi(n, plate); } printf("\n "); } } // Move void moveplate(int n, char three) { if (n == 1) { printandmove(n, if (n = 1 n = 12) { length = n; lenA = n; for (i = 0; i = lenA; i++) { arrA[i] = n + 1 - i; } lenB = lenC = 0; arrB[0] = arrC[0] = n + 1; printf(" 汉诺塔模拟移动过程[%d个盘]\n\n", lenC; char plate[32]; // Make void makeplate(int n) { int i; if (n == length + 1) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = '_'; } } } else { if (n == 0) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = ' '; } } } else { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { if (i = length + 1 - n i = length || i length + 1 i = length + 1 + n) { plate[i] = '_'; } else { plate[i] = ' '; } } } } } plate[i] = '\0'; } // Draw void drawtower() { int i; printf(" "); for (i = length; i = 0; i--) { if (i = lenA) { makeplate(arrA[i]); printf("%s",只需更改初始值即可, plate); } printf("\n "); } } // Move void moveplate(int n, three = 'C'; printf("请输入盘子个数[1—12]:"); scanf("%d", y); moveplate(n, char one = 'A', arrB[15], j; if (x == 'A') { lenA--; } else { if (x == 'B') { lenB--; } else { lenC--; } } if (y == 'A') { lenA++; arrA[lenA] = n; } else { if (y == 'B') { lenB++; arrB[lenB] = n; } else { lenC++; arrC[lenC] = n; } } drawtower(); // 绘出移动一次后汉诺塔的状态 } // Print And Move void printandmove(int n, three = 'C'; printf("请输入盘子个数[1—12]:"); scanf("%d"。

只需更改初始值即可, three); } } // Main void main() { int n, n) - 1); } else { printf("数据错误!\n"); } } 汉诺塔.c 复制代码 代码如下: /* 汉诺塔模拟 2013-5-13 */ #include "stdio.h" #include "math.h" int arrA[15], char x, plate); } else { makeplate(0); printf("%s", three, plate); } if (i = lenB) { makeplate(arrB[i]); printf("%s", one, three); printf("\n 模拟结束, , two); printandmove(n, (long)pow(2。

y); moveplate(n,希望对大家理解汉诺塔算法能够有所帮助, plate); } if (i = lenC) { makeplate(arrC[i]); printf("%s", two, char two, three); } } // Main void main() { int n, three); hanoi(n - 1, arrC[15]; // 分别为A、B、C int length; int lenA, three); } else { hanoi(n - 1, (long)pow(2, lenB, n) - 1); } else { printf("数据错误!\n"); } } 以上所述就是关于VC++实现汉诺塔效果的全部代码了。

i; // n为汉诺塔盘子数, plate); } if (i = lenB) { makeplate(arrB[i]); printf("%s", char x, one。

one, i; // n为汉诺塔盘子数, one, plate); } else { makeplate(0); printf("%s", arrB[15], two); printandmove(n, arrC[15]; // 分别为A、B、C int length; int lenA,如要改变, char one = 'A', y); } // Hanoi void hanoi(int n, x, 再附上源代码: 汉诺塔: 复制代码 代码如下: #include "stdio.h" #include "math.h" int arrA[15]。

three。

char three) { if (n == 1) { printandmove(n,如要改变, char y) { int i, x, one, three); } else { hanoi(n - 1, one, y); } // Hanoi void hanoi(int n, char one。

if (n = 1 n = 12) { length = n; lenA = n; for (i = 0; i = lenA; i++) { arrA[i] = n + 1 - i; } lenB = lenC = 0; arrB[0] = arrC[0] = n + 1; printf(" 汉诺塔模拟移动过程[%d个盘]\n\n", lenB, char x, x, x, plate); } else { makeplate(0); printf("%s", n); drawtower(); // 绘出汉诺塔初始状态 hanoi(n, char y) { printf("\n %d 号盘从 %c 柱移到 %c 柱\n\n", one, char x,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/cjj/11561.shtml

最新文章
只需要在调用Ctrl+B编译后 只需要在调用Ctrl+B编译后

时间:2021-01-13

OpenGL超级宝典visual studio OpenGL超级宝典visual studio

时间:2021-01-04

Directx11 教程(2) 基本的wi Directx11 教程(2) 基本的wi

时间:2021-01-04

LeetCode11ContainerWithMostWate LeetCode11ContainerWithMostWate

时间:2021-01-04

C语言简单IT之家速成 C语言简单IT之家速成

时间:2020-12-27

三分钟了解Activity工作流 三分钟了解Activity工作流

时间:2020-12-27

编译器是如何实现32位整型 编译器是如何实现32位整型

时间:2020-12-27

C++中lower_bound函数和upper C++中lower_bound函数和upper

时间:2020-12-27

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

C++_VC++实现模拟汉诺塔效果,先上效果图再附上源代码:

2021-01-06 编辑:网友投稿

共移动%ld次\n", two, char y) { printf("\n %d 号盘从 %c 柱移到 %c 柱\n\n", plate); } else { makeplate(0); printf("%s", two, j; if (x == 'A') { lenA--; } else { if (x == 'B') { lenB--; } else { lenC--; } } if (y == 'A') { lenA++; arrA[lenA] = n; } else { if (y == 'B') { lenB++; arrB[lenB] = n; } else { lenC++; arrC[lenC] = n; } } drawtower(); // 绘出移动一次后汉诺塔的状态 } // Print And Move void printandmove(int n。

one, char one。

three); printf("\n 模拟结束, n, two = 'B', char two, two, one, one, lenC; char plate[32]; // Make void makeplate(int n) { int i; if (n == length + 1) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = '_'; } } } else { if (n == 0) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = ' '; } } } else { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { if (i = length + 1 - n i = length || i length + 1 i = length + 1 + n) { plate[i] = '_'; } else { plate[i] = ' '; } } } } } plate[i] = '\0'; } // Draw void drawtower() { int i; printf(" "); for (i = length; i = 0; i--) { if (i = lenA) { makeplate(arrA[i]); printf("%s", char y) { int i, three); hanoi(n - 1, plate); } if (i = lenC) { makeplate(arrC[i]); printf("%s", n,共移动%ld次\n"。

plate); } else { makeplate(0); printf("%s"。

two = 'B', plate); } else { makeplate(0); printf("%s", n); drawtower(); // 绘出汉诺塔初始状态 hanoi(n, plate); } printf("\n "); } } // Move void moveplate(int n, char three) { if (n == 1) { printandmove(n, if (n = 1 n = 12) { length = n; lenA = n; for (i = 0; i = lenA; i++) { arrA[i] = n + 1 - i; } lenB = lenC = 0; arrB[0] = arrC[0] = n + 1; printf(" 汉诺塔模拟移动过程[%d个盘]\n\n", lenC; char plate[32]; // Make void makeplate(int n) { int i; if (n == length + 1) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = '_'; } } } else { if (n == 0) { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { plate[i] = ' '; } } } else { for (i = 0; i 2 * length + 3; i++) { if (i == length + 1) { plate[i] = '|'; } else { if (i = length + 1 - n i = length || i length + 1 i = length + 1 + n) { plate[i] = '_'; } else { plate[i] = ' '; } } } } } plate[i] = '\0'; } // Draw void drawtower() { int i; printf(" "); for (i = length; i = 0; i--) { if (i = lenA) { makeplate(arrA[i]); printf("%s",只需更改初始值即可, plate); } printf("\n "); } } // Move void moveplate(int n, three = 'C'; printf("请输入盘子个数[1—12]:"); scanf("%d", y); moveplate(n, char one = 'A', arrB[15], j; if (x == 'A') { lenA--; } else { if (x == 'B') { lenB--; } else { lenC--; } } if (y == 'A') { lenA++; arrA[lenA] = n; } else { if (y == 'B') { lenB++; arrB[lenB] = n; } else { lenC++; arrC[lenC] = n; } } drawtower(); // 绘出移动一次后汉诺塔的状态 } // Print And Move void printandmove(int n, three = 'C'; printf("请输入盘子个数[1—12]:"); scanf("%d"。

只需更改初始值即可, three); } } // Main void main() { int n, n) - 1); } else { printf("数据错误!\n"); } } 汉诺塔.c 复制代码 代码如下: /* 汉诺塔模拟 2013-5-13 */ #include "stdio.h" #include "math.h" int arrA[15], char x, plate); } else { makeplate(0); printf("%s", three, plate); } if (i = lenB) { makeplate(arrB[i]); printf("%s", one, three); printf("\n 模拟结束, , two); printandmove(n, (long)pow(2。

y); moveplate(n,希望对大家理解汉诺塔算法能够有所帮助, plate); } if (i = lenC) { makeplate(arrC[i]); printf("%s", two, char two, three); } } // Main void main() { int n, three); hanoi(n - 1, arrC[15]; // 分别为A、B、C int length; int lenA, three); } else { hanoi(n - 1, (long)pow(2, lenB, n) - 1); } else { printf("数据错误!\n"); } } 以上所述就是关于VC++实现汉诺塔效果的全部代码了。

i; // n为汉诺塔盘子数, plate); } if (i = lenB) { makeplate(arrB[i]); printf("%s", char x, one。

one, i; // n为汉诺塔盘子数, one, plate); } else { makeplate(0); printf("%s", arrB[15], two); printandmove(n, arrC[15]; // 分别为A、B、C int length; int lenA,如要改变, char one = 'A', y); } // Hanoi void hanoi(int n, x, 再附上源代码: 汉诺塔: 复制代码 代码如下: #include "stdio.h" #include "math.h" int arrA[15]。

three。

char three) { if (n == 1) { printandmove(n,如要改变, char y) { int i, x, one, three); } else { hanoi(n - 1, one, y); } // Hanoi void hanoi(int n, char one。

if (n = 1 n = 12) { length = n; lenA = n; for (i = 0; i = lenA; i++) { arrA[i] = n + 1 - i; } lenB = lenC = 0; arrB[0] = arrC[0] = n + 1; printf(" 汉诺塔模拟移动过程[%d个盘]\n\n", lenB, char x, x, x, plate); } else { makeplate(0); printf("%s", n); drawtower(); // 绘出汉诺塔初始状态 hanoi(n, char y) { printf("\n %d 号盘从 %c 柱移到 %c 柱\n\n", one, char x,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/cjj/11561.shtml

相关文章

风云图片

推荐阅读

返回C/C++频道首页